<div class="modal" ng-controller="SaveAppDefinitionCtrl">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h2>{{ 'APP.POPUP.SAVE-APP-TITLE' | translate }}</h2>
      </div>
      <div class="modal-body">
        <p>{{ 'APP.POPUP.CREATE-DESCRIPTION' | translate }}</p>
        <div
          ng-if="saveDialog.errorMessage && saveDialog.errorMessage.length > 0"
          class="alert error"
          style="font-size: 14px; margin-top:20px"
        >
          <div class="popup-error" style="font-size: 14px">
            <span class="glyphicon glyphicon-remove-circle"></span>
            <span>{{ saveDialog.errorMessage }}</span>
          </div>
        </div>
        <div class="form-group">
          <label for="appName">{{ 'APP.NAME' | translate }}</label>
          <input
            ng-disabled="model.loading"
            type="text"
            class="form-control"
            id="appName"
            ng-model="saveDialog.name"
            ui-keypress="{13:'ok()'}"
            auto-focus
          />
        </div>
        <div class="form-group">
          <label for="appKey">{{ 'APP.KEY' | translate }}</label>
          <input ng-disabled="model.loading" type="text" class="form-control" id="appKey" ng-model="saveDialog.key" />
        </div>
        <div class="form-group">
          <label for="appDescription">{{ 'APP.DESCRIPTION' | translate }}</label>
          <textarea
            ng-disabled="model.loading"
            class="form-control"
            id="appDescription"
            rows="5"
            ng-model="saveDialog.description"
          ></textarea>
        </div>
        <div
          class="checkbox"
          ng-if="currentAppDefinition.definition &&
				    ((currentAppDefinition.definition.models && currentAppDefinition.definition.models.length > 0)
				            || (currentAppDefinition.definition.cmmnModels && currentAppDefinition.definition.cmmnModels.length > 0)) "
        >
          <label>
            <input type="checkbox" ng-model="saveDialog.publish" />
            {{ 'APP.POPUP.PUBLISH-FIELD' | translate }}
          </label>
        </div>

        <div
          ng-if="error && (error.hasCustomStencilItem || error.hasValidationErrors) && !status.loading"
          class="alert error"
          style="font-size: 14px; margin-top:20px"
        >
          <div class="popup-error" style="font-size: 14px">
            <span class="glyphicon glyphicon-remove-circle"></span>
            <span ng-if="error.hasCustomStencilItem">{{ 'APP.POPUP.HAS-CUSTOM-STENCILITEM' | translate: error }}</span>
            <span ng-if="error.hasValidationErrors">{{ 'APP.POPUP.HAS-VALIDATIONERROR' | translate: error }}</span>
          </div>
        </div>

        <div
          ng-if="conflict && conflict.type && conflict.type == 'conflictingProcDefKey'"
          class="alert-danger app-publish-error"
          role="alert"
        >
          <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true" style="margin-right: 2px"></span>
          <span>{{ 'APP.POPUP.PUBLISH-ERROR-PROCDEF-KEY-CONFLICT' | translate: conflict.data }}</span>
        </div>

        <div
          ng-if="conflict && conflict.type && conflict.type == 'duplicateProcDefKeys'"
          class="alert-danger app-publish-error"
          role="alert"
        >
          <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true" style="margin-right: 2px"></span>
          <span>{{ 'APP.POPUP.PUBLISH-ERROR-PROCDEF-DUPLICATE-KEYS' | translate }}</span>
          <ul>
            <li ng-repeat="entry in conflict.data.duplicateProcessDefinitionIds">
              <span ng-repeat="(id, name) in entry">{{ id }} ({{ name }})</span>
            </li>
          </ul>
        </div>

        <div
          ng-if="conflict && conflict.type && conflict.type == 'processModelAlreadyUsed'"
          class="alert-warning app-publish-error"
          role="alert"
        >
          <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true" style="margin-right: 2px"></span>
          <span>{{ 'APP.POPUP.PUBLISH-ERROR-PROCESS-ALREADY-USED' | translate }}</span>
          <ul>
            <li ng-repeat="processName in conflict.data.conflictingProcessModelNames track by $index">
              {{ processName }} ({{ 'APP.POPUP.PUBLISH-ERROR-PROCESS-ALREADY-USED-APP' | translate }} "{{
                conflict.data.conflictingAppNames[$index]
              }}")
            </li>
          </ul>
        </div>
      </div>

      <div class="modal-footer">
        <div
          class="pull-right"
          ng-if="conflict == null || conflict == undefined || conflict.type != 'processModelAlreadyUsed'"
        >
          <button class="btn btn-sm btn-default" ng-click="cancel()" ng-disabled="model.loading" translate>
            GENERAL.ACTION.CANCEL
          </button>
          <button
            class="btn btn-primary"
            ng-click="saveAndClose()"
            ng-disabled="status.loading || saveDialog.name.length == 0 || saveDialog.key.length == 0"
            ng-show="!error && !error.hasCustomStencilItem && !error.hasValidationErrors"
            translate
          >
            ACTION.SAVE-AND-CLOSE
          </button>
          <button
            class="btn btn-primary"
            ng-click="save()"
            ng-disabled="status.loading || saveDialog.name.length == 0 || saveDialog.key.length == 0"
            ng-show="!error && !error.hasCustomStencilItem && !error.hasValidationErrors"
            translate
          >
            ACTION.SAVE
          </button>
        </div>

        <div class="pull-right" ng-if="conflict && conflict.type == 'processModelAlreadyUsed'">
          <button type="button" class="btn btn-sm btn-default" ng-click="cancel()" ng-disabled="popup.loading">
            {{ 'GENERAL.ACTION.CANCEL' | translate }}
          </button>
          <button
            type="button"
            class="btn btn-sm btn-success"
            style="background-color: #5cb85c;border-color: #4cae4c;"
            ng-click="saveAndClose(true)"
            ng-disabled="popup.loading"
          >
            <span>{{ 'GENERAL.ACTION.CONFIRM-AND-CLOSE' | translate }}</span>
          </button>
          <button
            type="button"
            class="btn btn-sm btn-success"
            style="background-color: #5cb85c;border-color: #4cae4c;"
            ng-click="save(true)"
            ng-disabled="popup.loading"
          >
            <span>{{ 'GENERAL.ACTION.CONFIRM' | translate }}</span>
          </button>
        </div>

        <div class="loading pull-right" ng-show="model.loading">
          <div class="l1"></div>
          <div class="l2"></div>
          <div class="l2"></div>
        </div>
      </div>
    </div>
  </div>
</div>
